snapcast: update to v0.34.0
authorSzabolcs Hubai <[email protected]>
Thu, 30 Oct 2025 08:58:26 +0000 (09:58 +0100)
committerHannu Nyman <[email protected]>
Mon, 8 Dec 2025 17:41:56 +0000 (18:41 +0100)
A straightforward update from 0.28.0 (2024-03-19, [1])
to 0.34.0 (2025-10-12, [2]) with almost 400 commits. [3]

Notable change is the configurable OpenSSL support (BUILD_WITH_SSL)
for both snapserver and snapclient.
They will be enabled once I introduce the flavours.

In the mean time upsteam moved to it's own organization. [4]

Upstream changelog:
https://github.com/snapcast/snapcast/blob/v0.34.0/changelog.md

[1]: https://github.com/snapcast/snapcast/releases/tag/v0.28.0
[2]: https://github.com/snapcast/snapcast/releases/tag/v0.34.0
[3]: https://github.com/snapcast/snapcast/compare/v0.28.0...v0.34.0
[4]: https://github.com/snapcast

Signed-off-by: Szabolcs Hubai <[email protected]>
sound/snapcast/Makefile
sound/snapcast/patches/001-v0.29.0-fix-compilation-with-boost-v1.87.0.patch [deleted file]
sound/snapcast/patches/002-v0.30.0-use-make_address-from-boost-as-from_string-is-deprecated-1308.patch [deleted file]
sound/snapcast/patches/003-v0.30.0-fix-compilation-with-boost-v1.87.0.patch [deleted file]
sound/snapcast/patches/004-v0.31.101-fix-compilation-with-boost-1.88.patch [deleted file]
sound/snapcast/patches/005-v0.32.4-fix-building-with-boost-v1.89.0.patch [deleted file]

index 20b57b7f6109f2955dc8ea4cedf3e6959bacd6d6..f42e0bddb18324c264589294e31d52e1fcfbff19 100644 (file)
@@ -3,13 +3,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=snapcast
-PKG_VERSION:=0.28.0
-PKG_RELEASE:=2
+PKG_VERSION:=0.34.0
+PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://github.com/badaix/snapcast.git
+PKG_SOURCE_URL:=https://github.com/snapcast/snapcast.git
 PKG_SOURCE_VERSION:=v$(PKG_VERSION)
-PKG_MIRROR_HASH=288325fc8b134502adb522711c18210794734675684cf5d8eba8a0a82778f6c9
+PKG_MIRROR_HASH=b47c44e208708cbfd6fb89b5874ed05ffa165b959904ccc11b03073bf9b55b0a
 
 PKG_MAINTAINER:=Szabolcs Hubai <[email protected]>, David Andreoletti <[email protected]>
 PKG_LICENSE:=GPL-3.0-or-later
@@ -23,14 +23,18 @@ CMAKE_OPTIONS += \
        -DBUILD_TESTS=OFF \
        -DBUILD_WITH_ALSA=ON \
        -DBUILD_WITH_AVAHI=OFF \
-       -DBUILD_WITH_PULSE=OFF
+       -DBUILD_WITH_JACK=OFF \
+       -DBUILD_WITH_PIPEWIRE=OFF \
+       -DBUILD_WITH_PULSE=OFF \
+       -DBUILD_WITH_SSL=OFF \
+       -DBUILD_WITH_TREMOR=ON
 
 define Package/snapcast/Default
   SECTION:=sound
   CATEGORY:=Sound
   TITLE:=Synchronous multiroom audio player
   DEPENDS:=+alsa-lib +libexpat +libatomic +libogg +libflac +libopus +boost +libsoxr
-  URL:=https://github.com/badaix/snapcast
+  URL:=https://github.com/snapcast/snapcast
 endef
 
 define Package/snapcast/Default/description
diff --git a/sound/snapcast/patches/001-v0.29.0-fix-compilation-with-boost-v1.87.0.patch b/sound/snapcast/patches/001-v0.29.0-fix-compilation-with-boost-v1.87.0.patch
deleted file mode 100644 (file)
index 743ff73..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-From 6ada939adf5c4f7e43d0fbe6ea45492b9564cb8d Mon Sep 17 00:00:00 2001
-From: badaix <[email protected]>
-Date: Thu, 19 Dec 2024 22:53:49 +0100
-Subject: [PATCH] Fix compilation with boost v1.87.0
-
----
- server/control_server.cpp | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
---- a/server/control_server.cpp
-+++ b/server/control_server.cpp
-@@ -161,7 +161,7 @@ void ControlServer::start()
-             {
-                 LOG(INFO, LOG_TAG) << "Creating TCP acceptor for address: " << address << ", port: " << tcp_settings_.port << "\n";
-                 acceptor_tcp_.emplace_back(make_unique<tcp::acceptor>(boost::asio::make_strand(io_context_.get_executor()),
--                                                                      tcp::endpoint(boost::asio::ip::address::from_string(address), tcp_settings_.port)));
-+                                                                      tcp::endpoint(boost::asio::ip::make_address(address), settings_.tcp.port)));
-             }
-             catch (const boost::system::system_error& e)
-             {
-@@ -177,7 +177,7 @@ void ControlServer::start()
-             {
-                 LOG(INFO, LOG_TAG) << "Creating HTTP acceptor for address: " << address << ", port: " << http_settings_.port << "\n";
-                 acceptor_http_.emplace_back(make_unique<tcp::acceptor>(boost::asio::make_strand(io_context_.get_executor()),
--                                                                       tcp::endpoint(boost::asio::ip::address::from_string(address), http_settings_.port)));
-+                                                                       tcp::endpoint(boost::asio::ip::make_address(address), settings_.http.port)));
-             }
-             catch (const boost::system::system_error& e)
-             {
diff --git a/sound/snapcast/patches/002-v0.30.0-use-make_address-from-boost-as-from_string-is-deprecated-1308.patch b/sound/snapcast/patches/002-v0.30.0-use-make_address-from-boost-as-from_string-is-deprecated-1308.patch
deleted file mode 100644 (file)
index 65d09f4..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-From b2fd2bf9ef835104a813c40c190d71e3644125d7 Mon Sep 17 00:00:00 2001
-From: Rudi Heitbaum <[email protected]>
-Date: Thu, 19 Dec 2024 02:23:11 +1100
-Subject: [PATCH] use make_address from boost as from_string is deprecated
- (#1308)
-
-Since boost 1.87.0 boost::asio::ip::address::from_string is no longer available
-
-ref: https://github.com/boostorg/asio/commit/c0d1cfce7767599c4cf00df36f8017a1073339ae
-
-fixes:
-    ../server/control_server.cpp: In member function 'void ControlServer::start()':
-    ../server/control_server.cpp:164:111: error: 'from_string' is not a member of 'boost::asio::ip::address'
-      164 |                                                                       tcp::endpoint(boost::asio::ip::address::from_string(address), tcp_settings_.port)));
-          |                                                                                                               ^~~~~~~~~~~
-    ../server/control_server.cpp:180:112: error: 'from_string' is not a member of 'boost::asio::ip::address'
-      180 |                                                                        tcp::endpoint(boost::asio::ip::address::from_string(address), http_settings_.port)));
-          |                                                                                                                ^~~~~~~~~~~
-    ../server/streamreader/tcp_stream.cpp: In constructor 'streamreader::TcpStream::TcpStream(streamreader::PcmStream::Listener*, boost::asio::io_context&, const ServerSettings&, const streamreader::StreamUri&)':
-    ../server/streamreader/tcp_stream.cpp:67:97: error: 'from_string' is not a member of 'boost::asio::ip::address'
-       67 |         acceptor_ = make_unique<tcp::acceptor>(strand_, tcp::endpoint(boost::asio::ip::address::from_string(host_), port_));
-          |                                                                                                 ^~~~~~~~~~~
-    ../server/streamreader/tcp_stream.cpp: In member function 'virtual void streamreader::TcpStream::connect()':
-    ../server/streamreader/tcp_stream.cpp:96:75: error: 'from_string' is not a member of 'boost::asio::ip::address'
-       96 |         boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::address::from_string(host_), port_);
-          |                                                                           ^~~~~~~~~~~
-    ../server/stream_server.cpp: In member function 'void StreamServer::start()':
-    ../server/stream_server.cpp:234:103: error: 'from_string' is not a member of 'boost::asio::ip::address'
-      234 |                                                               tcp::endpoint(boost::asio::ip::address::from_string(address), settings_.stream.port)));
-          |
----
- server/control_server.cpp          | 4 ++--
- server/stream_server.cpp           | 2 +-
- server/streamreader/tcp_stream.cpp | 4 ++--
- 3 files changed, 5 insertions(+), 5 deletions(-)
-
---- a/server/control_server.cpp
-+++ b/server/control_server.cpp
-@@ -161,7 +161,7 @@ void ControlServer::start()
-             {
-                 LOG(INFO, LOG_TAG) << "Creating TCP acceptor for address: " << address << ", port: " << tcp_settings_.port << "\n";
-                 acceptor_tcp_.emplace_back(make_unique<tcp::acceptor>(boost::asio::make_strand(io_context_.get_executor()),
--                                                                      tcp::endpoint(boost::asio::ip::make_address(address), settings_.tcp.port)));
-+                                                                      tcp::endpoint(boost::asio::ip::make_address(address), tcp_settings_.port)));
-             }
-             catch (const boost::system::system_error& e)
-             {
-@@ -177,7 +177,7 @@ void ControlServer::start()
-             {
-                 LOG(INFO, LOG_TAG) << "Creating HTTP acceptor for address: " << address << ", port: " << http_settings_.port << "\n";
-                 acceptor_http_.emplace_back(make_unique<tcp::acceptor>(boost::asio::make_strand(io_context_.get_executor()),
--                                                                       tcp::endpoint(boost::asio::ip::make_address(address), settings_.http.port)));
-+                                                                       tcp::endpoint(boost::asio::ip::make_address(address), http_settings_.port)));
-             }
-             catch (const boost::system::system_error& e)
-             {
---- a/server/stream_server.cpp
-+++ b/server/stream_server.cpp
-@@ -231,7 +231,7 @@ void StreamServer::start()
-         {
-             LOG(INFO, LOG_TAG) << "Creating stream acceptor for address: " << address << ", port: " << settings_.stream.port << "\n";
-             acceptor_.emplace_back(make_unique<tcp::acceptor>(boost::asio::make_strand(io_context_.get_executor()),
--                                                              tcp::endpoint(boost::asio::ip::address::from_string(address), settings_.stream.port)));
-+                                                              tcp::endpoint(boost::asio::ip::make_address(address), settings_.stream.port)));
-         }
-         catch (const boost::system::system_error& e)
-         {
---- a/server/streamreader/tcp_stream.cpp
-+++ b/server/streamreader/tcp_stream.cpp
-@@ -64,7 +64,7 @@ TcpStream::TcpStream(PcmStream::Listener
-     LOG(INFO, LOG_TAG) << "TcpStream host: " << host_ << ", port: " << port_ << ", is server: " << is_server_ << "\n";
-     if (is_server_)
--        acceptor_ = make_unique<tcp::acceptor>(strand_, tcp::endpoint(boost::asio::ip::address::from_string(host_), port_));
-+        acceptor_ = make_unique<tcp::acceptor>(strand_, tcp::endpoint(boost::asio::ip::make_address(host_), port_));
- }
-@@ -93,7 +93,7 @@ void TcpStream::connect()
-     else
-     {
-         stream_ = make_unique<tcp::socket>(strand_);
--        boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::address::from_string(host_), port_);
-+        boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::make_address(host_), port_);
-         stream_->async_connect(endpoint,
-                                [this](const boost::system::error_code& ec)
-                                {
diff --git a/sound/snapcast/patches/003-v0.30.0-fix-compilation-with-boost-v1.87.0.patch b/sound/snapcast/patches/003-v0.30.0-fix-compilation-with-boost-v1.87.0.patch
deleted file mode 100644 (file)
index b4dd2f8..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-From 6190041e863968d76b6d16140bba90be6dff848f Mon Sep 17 00:00:00 2001
-From: badaix <[email protected]>
-Date: Thu, 19 Dec 2024 21:36:08 +0100
-Subject: [PATCH] Fix compilation with boost v1.87.0
-
----
- client/client_connection.cpp | 5 ++---
- server/stream_session_ws.cpp | 2 +-
- 2 files changed, 3 insertions(+), 4 deletions(-)
-
---- a/client/client_connection.cpp
-+++ b/client/client_connection.cpp
-@@ -124,10 +124,9 @@ std::string ClientConnection::getMacAddr
- void ClientConnection::connect(const ResultHandler& handler)
- {
--    tcp::resolver::query query(server_.host, cpt::to_string(server_.port), boost::asio::ip::resolver_query_base::numeric_service);
-     boost::system::error_code ec;
-     LOG(INFO, LOG_TAG) << "Resolving host IP for: " << server_.host << "\n";
--    auto iterator = resolver_.resolve(query, ec);
-+    auto iterator = resolver_.resolve(server_.host, cpt::to_string(server_.port), boost::asio::ip::resolver_query_base::numeric_service, ec);
-     if (ec)
-     {
-         LOG(ERROR, LOG_TAG) << "Failed to resolve host '" << server_.host << "', error: " << ec.message() << "\n";
-@@ -141,7 +140,7 @@ void ClientConnection::connect(const Res
-     for (const auto& iter : iterator)
-     {
-         LOG(INFO, LOG_TAG) << "Connecting to " << iter.endpoint() << "\n";
--        socket_.connect(*iterator, ec);
-+        socket_.connect(iter, ec);
-         if (!ec || (ec == boost::system::errc::interrupted))
-         {
-             // We were successful or interrupted, e.g. by sig int
---- a/server/stream_session_ws.cpp
-+++ b/server/stream_session_ws.cpp
-@@ -114,7 +114,7 @@ void StreamSessionWebsocket::on_read_ws(
-         return;
-     }
--    auto* data = boost::asio::buffer_cast<char*>(buffer_.data());
-+    auto* data = static_cast<char*>(buffer_.data().data());
-     baseMessage_.deserialize(data);
-     LOG(DEBUG, LOG_TAG) << "getNextMessage: " << baseMessage_.type << ", size: " << baseMessage_.size << ", id: " << baseMessage_.id
-                         << ", refers: " << baseMessage_.refersTo << "\n";
diff --git a/sound/snapcast/patches/004-v0.31.101-fix-compilation-with-boost-1.88.patch b/sound/snapcast/patches/004-v0.31.101-fix-compilation-with-boost-1.88.patch
deleted file mode 100644 (file)
index b94c8ad..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-From 901b79a213b139c35ff689c05aff01d29610a8d4 Mon Sep 17 00:00:00 2001
-From: Tobias Hochwallner <[email protected]>
-Date: Wed, 7 May 2025 22:42:07 +0200
-Subject: Build failure with boost 1.88.0 #1367
- 1. [tobster] fix compilation errors by including the deprecated boost process v1 APIs
- 2. [badaix] Define BOOST_PROCESS_VERSION=1 globally
-
----
- client/player/player.cpp               | 6 +++++-
- server/streamreader/stream_control.hpp | 8 +++++---
- 2 files changed, 10 insertions(+), 4 deletions(-)
-
---- a/client/player/player.cpp
-+++ b/client/player/player.cpp
-@@ -34,10 +34,17 @@
- #pragma GCC diagnostic ignored "-Wmissing-braces"
- #pragma GCC diagnostic ignored "-Wnarrowing"
- #pragma GCC diagnostic ignored "-Wc++11-narrowing"
-+#if BOOST_VERSION >= 108800
-+#include <boost/process/v1/args.hpp>
-+#include <boost/process/v1/async.hpp>
-+#include <boost/process/v1/child.hpp>
-+#include <boost/process/v1/exe.hpp>
-+#else
- #include <boost/process/args.hpp>
- #include <boost/process/async.hpp>
- #include <boost/process/child.hpp>
- #include <boost/process/exe.hpp>
-+#endif
- #pragma GCC diagnostic pop
- #endif
---- a/server/streamreader/stream_control.hpp
-+++ b/server/streamreader/stream_control.hpp
-@@ -32,7 +32,13 @@
- #pragma GCC diagnostic ignored "-Wnarrowing"
- #pragma GCC diagnostic ignored "-Wc++11-narrowing"
- #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-+#if BOOST_VERSION >= 108800
-+#include <boost/process/v1/io.hpp>
-+#include <boost/process/v1/start_dir.hpp>
-+#include <boost/process/v1/system.hpp>
-+#else
- #include <boost/process.hpp>
-+#endif
- #pragma GCC diagnostic pop
- #include <boost/asio/any_io_executor.hpp>
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -318,7 +318,8 @@ else()
-   add_compile_definitions(HAS_TREMOR)
- endif()
--add_compile_definitions(BOOST_ERROR_CODE_HEADER_ONLY BOOST_ASIO_NO_TS_EXECUTORS)
-+add_compile_definitions(BOOST_ERROR_CODE_HEADER_ONLY BOOST_ASIO_NO_TS_EXECUTORS
-+                        BOOST_PROCESS_VERSION=1)
- if(WIN32)
-   include(FindPackageHandleStandardArgs)
diff --git a/sound/snapcast/patches/005-v0.32.4-fix-building-with-boost-v1.89.0.patch b/sound/snapcast/patches/005-v0.32.4-fix-building-with-boost-v1.89.0.patch
deleted file mode 100644 (file)
index dc13fbc..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-From d2e1635ebd96ac76cc779cb3ab73bae10fd88fd1 Mon Sep 17 00:00:00 2001
-From: badaix <[email protected]>
-Date: Thu, 14 Aug 2025 20:25:01 +0200
-Subject: [PATCH] Fix building with boost v1.89.0
-
----
- client/player/alsa_player.cpp | 1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
---- a/client/player/alsa_player.cpp
-+++ b/client/player/alsa_player.cpp
-@@ -30,6 +30,7 @@
- // standard headers
- #include <chrono>
-+#include <cmath>
- using namespace std::chrono_literals;